package com.ctsi.commons.event;

import java.util.Map;

/**
 * 事件处理接口,如果需要动态处理，需要实现hashCode
 * 
 * @author zhangjw
 * 
 */
public interface Observer {
	public void update(BaseEvent o, Object... arg) throws NotRollbackExcetion;

	/**
	 * 判断是否运行
	 * 
	 * @param o
	 * @param context
	 * @return
	 */
	public boolean isRun(BaseEvent o, Map<String, ?> context);

	/**
	 * 传递配置的脚本条件
	 * 
	 * @param con
	 */
	public void setCondition(String con);
    
	/**
	 * 名称
	 * @return
	 */
	public String getName();

	public void setName(String name);
	
	/**
	 * id
	 * @return
	 */
	public String getId();

	public void setId(String id);	
	
	/**
	 * 用户指定的是否同步执行,默认同步
	 * @return
	 */
	public boolean isUserDefSync();
	
	
	/**
	 * 设置用户指定,运行方式
	 * @param userDefSync
	 */
	public void setUserDefSync(boolean userDefSync);
}
